1
Mô hình Hàm số: Biến đổi thay vì Thay đổi
AI019Lesson 2
00:00

Mô hình hàm số thay đổi cách tư duy của nhà phát triển từ việc "cập nhật một hộp trạng thái" sang áp dụng các phép biến đổi toán học cho các giá trị bất biến. Trong Elixir, dữ liệu không bao giờ bị thay đổi; nó chỉ được tái sinh thành những dạng mới.

1. Khẳng định Toán học

Khi bạn viết $x = a + 1$, bạn không đang gán kết quả vào một biến. Thay vào đó, bạn đơn giản là khẳng định rằng hai biểu thức $x$ và $a + 1$ có cùng giá trị. Điều này phản ánh logic đại số nơi $x$ đại diện cho một giá trị cố định trong một ngữ cảnh cụ thể.

2. Tính bất biến như một đảm bảo

Trong Elixir, tất cả các giá trị đều bất biến. Dữ liệu không thể bị thay đổi sau khi được tạo. Điều này loại bỏ các "hiệu ứng phụ" mà một hàm có thể bất ngờ thay đổi biến toàn cục hoặc đối tượng được truyền vào, đảm bảo rằng mã nguồn có thể dự đoán được và an toàn khi xử lý đa luồng.

TRƯỚC (Đầu vào)"elixir"String.capitalizeSAU (Kết quả)"Elixir"Dữ liệu gốc vẫn giữ nguyên

3. Biến đổi so với Thay đổi

Chúng ta chưa bao giờ thay đổi dữ liệu tại chỗ. Elixir không có phép gán; thay vào đó, nó cố gắng đối chiếu các giá trị với mẫu. Để "thay đổi" một giá trị, chúng ta truyền dữ liệu gốc qua một hàm để tạo ra một phiên bản hoàn toàn mới.

iex> name = "elixir"
"elixir"
iex> cap_name = String.capitalize name
"Elixir"
iex> name
"elixir" (Vẫn nguyên vẹn!)
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>